{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "78062fce-e5d6-45c7-8325-3ab0f5202a8c",
   "metadata": {},
   "source": [
    "# Homework 2: Down-conversion Simulation\n",
    "\n",
    "## (1）\n",
    "•Input Signal：61MHz Sine\n",
    "•Sampling Frequency：80MHz\n",
    "•NCO Frequency：20MHz\n",
    "\n",
    "This signal should be sampled, filtered and converted to a baseband I/Q-signal. Choose the parameters(ex: decimation rate) so that the DDC to baseband can be done in a simple way. Show the diagrams of your design including:\n",
    "\n",
    "•Input sampled signal time and frequency domain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4b5cba7b-5e07-4f0c-8050-4fc845526be0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x76fdd25b8190>]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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iIiIPA4DHCIiIvI4DHCIiIjI4zDAISIiIo/DAIeIiIg8jm6PanBnpZM3W61Wk0tCREREapWet9U8hOG2DHCuXr0KAIiIiDC5JEREROSoq1evIjAwUDbNbfksquLiYpw9exY1a9aExWLRdNlWqxURERE4deoUn3NVBreLNG4bcdwu0rhtxHG7SPOUbSMIAq5evYrw8HB4ecmPsrktW3C8vLxQv359XfMICAio1JVIL9wu0rhtxHG7SOO2EcftIs0Tto1Sy00pDjImIiIij8MAh4iIiDwOAxyN+fn5YcqUKfDz8zO7KG6F20Uat404bhdp3DbiuF2k3Y7b5rYcZExERESejS04RERE5HEY4BAREZHHYYBDREREHocBDhEREXkcBjhOmD9/Pho2bAh/f39ERkZi+/btsum///57tGzZEv7+/mjTpg1Wr15tUEmN5ch2+fzzz9G9e3fUqlULtWrVQnR0tOJ2rMwcrTOlli9fDovFggEDBuhbQJM4ul2ysrIwevRo1KtXD35+fmjevDl/TzfNnTsXLVq0QNWqVREREYFXX30VN27cMKi0xti4cSP69euH8PBwWCwWrFq1SvE7SUlJuOeee+Dn54emTZti8eLFupfTaI5ulxUrVuDBBx9EcHAwAgICEBUVhd9//92YwhpJIIcsX75c8PX1Fb788kth3759wsiRI4WgoCAhMzNTNP3mzZsFb29vYfbs2cL+/fuFiRMnClWqVBH27NljcMn15eh2eeqpp4T58+cLu3fvFtLS0oRhw4YJgYGBwunTpw0uuf4c3Taljh8/Ltxxxx1C9+7dhf79+xtTWAM5ul3y8vKETp06CQ8//LCwadMm4fjx40JSUpKQmppqcMn15+i2WbZsmeDn5ycsW7ZMOH78uPD7778L9erVE1599VWDS66v1atXC2+99ZawYsUKAYCwcuVK2fTHjh0TqlWrJsTFxQn79+8XPvroI8Hb21tISEgwpsAGcXS7vPzyy8KsWbOE7du3C4cOHRImTJggVKlSRdi1a5cxBTYIAxwHdenSRRg9erTt76KiIiE8PFyIj48XTf/EE08Iffv2tXsvMjJS+Pe//61rOY3m6HYpr7CwUKhZs6awZMkSvYpoGme2TWFhoXDvvfcKX3zxhfDMM894ZIDj6Hb59NNPhcaNGwv5+flGFdE0jm6b0aNHCw888IDde3Fx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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as pl\n",
    "finput = 61e6\n",
    "fs = 80e6\n",
    "fnco = 20e6\n",
    "N = 1024\n",
    "time = np.arange(N) / fs\n",
    "sinput = np.cos(2*np.pi*finput*time)\n",
    "pl.plot(time, sinput)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "30e8299c-40c6-4325-b12d-0561baa29e7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x76fdd2365f90>]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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+eSTeuSRRyKvDx48qIqKCr388suaMmVKPEsclLNdvoGEQiFJPadVW1ksy3jgwAFdd911mjx5slasWGH5cCIN7v8wmaWlpWny5MnasGFD5I92KBTShg0btHDhwsQWh7NiGIYWLVqktWvXauPGjbYPJ1LP76jVt5ln6/rrr9fOnTujpt16660aN26c7r333q80nEhDMKCcrdLS0qjX2dnZkqSxY8dq1KhRiSjJVNu2bdP27dt19dVXa9iwYfrss8/0s5/9TGPHjrV070ksDhw4oGuvvVZlZWX6+c9/rsOHD0fmFRcXJ7Ay8zQ0NOjYsWNqaGhQMBiMXKfnwgsvjPzOJpMlS5aoqqpKV1xxha666io98cQT6ujo0K233pro0kzR3t6uvXv3Rl7v27dPO3bsUH5+/inbnGRUXV2tVatW6dVXX1VOTk5k7FBubq4yMjISXN3gLV26VDNnzlRpaana2tq0atUqbdy4UW+++WaiSzNFTk7OKeOFwmMUEzKOKCHnDiWhffv22eo04w8//NC47rrrjPz8fMPtdhvnn3++cccddxhffPFFokszzYoVKwxJAz7soqqqasDle+eddxJd2jl76qmnjNLSUiMtLc246qqrjK1btya6JNO88847A/5/VVVVJbo0U5xufVuxYkWiSzPFP/3TPxllZWVGWlqaMWLECOP666833nrrrUSXFVeJPM14yI1BAQAA1mf9A/IAAGDIIaAAAADLIaAAAADLIaAAAADLIaAAAADLIaAAAADLIaAAAADLIaAAAICIzZs3a9asWSopKZHD4dArr7wS0/sffPDBAW9ympWVFdPnEFAAAEBER0eHJk6cqNra2nN6/913361Dhw5FPcrLy3XLLbfE9DkEFAAAEDFz5kw98sgj+t73vjfgfL/fr7vvvlvnnXeesrKyNGXKFG3cuDEyPzs7W8XFxZFHY2Ojdu/erfnz58dUBwEFAACctYULF6qurk6rV6/Whx9+qFtuuUU33HCDPv300wHbP//887r44ot1zTXXxPQ9BBQAAHBWGhoatGLFCq1Zs0bXXHONxo4dq7vvvltXX321VqxYcUr7zs5OvfTSSzH3nkhSihkFAwAA+9u5c6eCwaAuvvjiqOl+v18FBQWntF+7dq3a2tpUVVUV83cRUAAAwFlpb2+Xy+VSfX29XC5X1Lzs7OxT2j///PP67ne/q6Kiopi/i4ACAADOyuWXX65gMKimpqYvHVOyb98+vfPOO/rP//zPc/ouAgoAAIhob2/X3r17I6/37dunHTt2KD8/XxdffLHmzJmjefPm6Re/+IUuv/xyHT58WBs2bNCECRNUWVkZed9vfvMbjRw5UjNnzjynOhyGYRiDXhoAAGALGzdu1HXXXXfK9KqqKq1cuVJdXV165JFH9Nvf/lYHDhzQ8OHDNXXqVD300EMaP368JCkUCqmsrEzz5s3To48+ek51EFAAAIDlcJoxAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwHAIKAACwnP8P7webjhYAKl8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Sinput = np.fft.fftshift(np.fft.fft(sinput))\n",
    "freq = (np.arange(N)/N - 0.5)*fs\n",
    "pl.plot(freq, np.abs(Sinput))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "640770a1-add0-442e-bf34-b046e243d229",
   "metadata": {},
   "source": [
    "•NCO signal time and frequency domain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8fd3afb1-0ca9-4779-a7a1-bc1be0b50a04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x76fdd01cd1d0>]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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AQAA1uW3Mzgul0sJCQneOwsLU79+/eRyubrUxzPPPKPhw4fr0ksv9Vp///336yc/+YmioqL05ptv6vbbb1ddXZ1+/etft9vPihUrtGzZsrM7EAAA0OP4fAZn4cKFHV4IfGr54osvfvDAjh8/rueee67dszeLFi3SZZddposvvlgLFizQ/Pnz9eijj3bYV35+vmpqajzL/v37f/D4AABA8PL5DM5dd92lm2++udM2qampcjqdqqqq8lrf0tKio0ePdunamb/85S9qaGhQTk7OGdump6dr+fLlamxslN1uP+11u93e7noAAGBNPgec+Ph4xcfHn7FdRkaGqqurVVJSonHjxkmS3nrrLbW1tSk9Pf2M2z/zzDP66U9/2qV9lZaWqm/fvoQYAAAgyY/X4AwfPlzZ2dmaPXu21qxZo+bmZs2bN0/Tp0/33EF14MABTZw4URs2bNCECRM82+7evVvvvvuutmzZclq/f/3rX1VZWalLLrlEERER2rp1qx566CHdfffd/joUAADQw/j1OTgbN27UvHnzNHHiRIWEhOj666/X448/7nm9ublZu3btUkNDg9d2a9eu1fnnn69Jkyad1mevXr1UUFCgO++8U4ZhaPDgwXrsscc0e/Zsfx4KAADoQWxGZ/dXW5Tb7VZMTIxqamrkcDhM7XvgwtdN7Q8AgJ7o6ZzxyhyRaGqfvnx+811UAADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAcgg4AADAdEaA90/AAQAAlkPAAQAAprMFeP8EHAAAYDqmqAAAAExGwAEAAKZjigoAAMBkBBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5BBwAAGA5fgs4Dz74oC699FJFRUUpNja2S9sYhqHFixcrKSlJkZGRyszM1FdffeXV5ujRo5oxY4YcDodiY2M1a9Ys1dXV+eEIAABAT+W3gNPU1KQbbrhBt912W5e3eeSRR/T4449rzZo12r59u3r37q2srCydOHHC02bGjBn67LPPtHXrVr322mt69913NWfOHH8cAgAA6KHC/NXxsmXLJEnr1q3rUnvDMLR69Wrdd999uu666yRJGzZs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r17GJ5980s0j9y9f6/Lzn//cKCgoMD766COjrKzMuPnmm42YmBjj22+/7eaR+5+vtTll3759Rv/+/Y0rrrjCuO6667pnsN3I17o0NjYa48ePNyZPnmy89957xr59+4xt27YZpaWl3Txy//O1Nhs3bjTsdruxceNGY9++fcYbb7xhJCUlGXfeeWc3j9y/tmzZYtx7773Gyy+/bEgyNm/e3Gn7vXv3GlFRUUZeXp7x+eefG0888YQRGhpqFBYWds+Au4mvdfnNb35jrFy50tixY4fx5ZdfGvn5+UavXr2MnTt3ds+AuwkBx0cTJkww5s6d6/m5tbXVSE5ONlasWNFu+xtvvNGYMmWK17r09HTjl7/8pV/H2d18rcu/amlpMaKjo43169f7a4gBcza1aWlpMS699FLj6aefNmbOnGnJgONrXf70pz8ZqampRlNTU3cNMWB8rc3cuXONn/zkJ17r8vLyjMsuu8yv4wykrnyQz58/37jooou81k2bNs3Iysry48gCqyt1ac+IESOMZcuWmT+gAGKKygdNTU0qKSlRZmamZ11ISIgyMzNVXFzc7jbFxcVe7SUpKyurw/Y90dnU5V81NDSoublZ/fr189cwA+Jsa3P//fcrISFBs2bN6o5hdruzqcurr76qjIwMzZ07V4mJiRo5cqQeeughtba2dtewu8XZ1ObSSy9VSUmJZxpr79692rJliyZPntwtYw5W58LfXzO0tbWptrbWcn9/z8kv2zxbhw8fVmtrqxITE73WJyYm6osvvmh3G5fL1W57l8vlt3F2t7Opy79asGCBkpOTT/tj1NOdTW3ee+89PfPMMyotLe2GEQbG2dRl7969euuttzRjxgxt2bJFu3fv1u23367m5mYtWbKkO4bdLc6mNj//+c91+PBhXX755TIMQy0tLbr11lv129/+tjuGHLQ6+vvrdrt1/PhxRUZGBmhkwWXVqlWqq6vTjTfeGOihmIozOAi4hx9+WJs2bdLmzZsVERER6OEEVG1trW666SY99dRTiouLC/RwgkpbW5sSEhL05JNPaty4cZo2bZruvfderVmzJtBDC7ht27bpoYce0h//+Eft3LlTL7/8sl5//XUtX7480ENDkHvuuee0bNkyvfjii0pISAj0cEzFGRwfxMXFKTQ0VJWVlV7rKysr5XQ6293G6XT61L4nOpu6nLJq1So9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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "snco_cos = np.cos(2*np.pi*fnco*time)\n",
    "pl.plot(time, snco_cos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "08060ce4-8967-4ef5-8163-6b03233c1153",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x76fdd0149590>]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "snco_sin = np.sin(2*np.pi*fnco*time)\n",
    "pl.plot(time, snco_sin)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e70c5815-49c3-452e-a593-55728998e8a7",
   "metadata": {},
   "source": [
    "•FIR filter speciation (Using Matlab Command : freqz)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "247d34ac-dee9-4cfc-a85f-3c393a4c798b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.signal import freqz"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8690a491-006f-4e11-9e71-36fc0a1b1fb7",
   "metadata": {},
   "source": [
    "•Baseband signal time and frequency domain"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0bbd18c8-e36c-45b1-a941-57b8b712f86f",
   "metadata": {},
   "source": [
    "\n",
    "## (2)\n",
    "•Input Signal：60MHz IF frequency Chirp, Bandwidth 8MHz\n",
    "•Sampling Frequency：80MHz\n",
    "•NCO Frequency：20MHz\n",
    "\n",
    "This signal should be sampled, filtered and converted to a baseband I/Q-signal. The requirements are the same as (1). \n",
    "\n",
    "Hints：Matlab commands — fir1，freqz，filter"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
